﻿#pragma once

#include "MapObject.h"
#include "../../Shared/Enums.h"
#include "../../Shared/ServerPackets.h"

using namespace Client::MirGraphics;
using namespace Client::MirScenes;
namespace S = ServerPackets;

namespace Client::MirObjects
{
    class SpellObject : public MapObject
    {
    public:
        ObjectType getRace() const override;

        bool getBlocking() const override;

        Spell Spell = static_cast<Spell>(0);
        int FrameCount = 0, FrameInterval = 0, FrameIndex = 0;
        bool Repeat = false;


        SpellObject(unsigned int objectID);

        void Load(S::ObjectSpell *info);

        void Process() override;

        void Draw() override;

        bool MouseOver(Point *p) override;

        void DrawBehindEffects(bool effectsEnabled) override;

        void DrawEffects(bool effectsEnabled) override;
    };
}
